In recent years, the amount of traffic over communication networks such as the Internet and wireless networks has increased greatly due to extensive usage of various web services where users download content such as web pages from different web sites to their client devices. In this disclosure, the term “client device” is used to represent any communication entity that is capable of downloading content from a server or other content storage over a communication network. Further, the term “server” is used to represent any communication entity that is capable of delivering content such as web pages to client devices over a communication network which may include the Internet and/or a wireless network. The server mentioned throughout this disclosure could also be referred to as a content server, an origin server, a content server host or an origin server host.
Typically, web pages, or parts thereof, are downloaded in a browsing session where a user of a client device can browse a web site or the like and click on links to obtain various web resources. Other types of content such as movies, music and TV programs can also be downloaded from a server. The term “content resource” is used herein to represent any piece of content that can be downloaded by a client device in a downloading session such as a browsing session or a Hypertext Transfer Protocol, HTTP, session, to mention some illustrative but non-limiting examples. A content resource may thus, without limitation, be a web page or some part thereof, or some video or audio content which can be accessed from a server e.g. providing a web site. Further, the term “downloading session” refers to any communication session where content is downloaded by a client device. To protect the content from being intercepted it is also becoming increasingly common to employ encryption of the content, e.g. by using HTTPS (HTTP Secure).
In order to reduce the amount of traffic and/or the load on the server caused by such downloading, caching can be employed where content resources offered by a server are stored at a location which may be “closer” to the client devices in terms of the number of transport links and network nodes involved, thereby reducing the transport distance and also the time it takes to get a requested content resource. For example, frequently requested content resources may be cached in this manner so as to reduce the traffic in the network and/or the load on the server caused by such download requests and resulting communication between the client devices and the server, referred to as round-trips.
The location where content resources are cached in this manner is commonly referred to as a “cache” which term will be used herein. A cache is thus a storage for content resources. The term “origin server” is also commonly used to denote a server, or server host, where content is originally stored which content may be temporarily stored, i.e. cached, in a cache.
When content resources are downloaded from a server by accessing a web site or the like, a large number of round-trips between client device and server may be required when each content resource must be requested separately, only to be directed to the cache. This is required when HTTPS is employed while when HTTP is employed the requests are terminated in the cache. For HTTPS the concept of “Blind Caching”, BC, also known as “Out-of-Band Caching”, OOBC, has been introduced to allow efficient caching also when HTTPS is employed. Briefly described, BC or OOBC allows for fetching content resources directly from a cache even when the content resources are encrypted e.g. using HTTPS. The number of round-trips in a browsing session can be reduced by employing a so-called cache map with information about where a range of different content resources can be fetched from various caches. The cache map may also be referred to as a resource map. Throughout this disclosure, the terms “fetching” and “downloading” are used interchangeably.
In brief, the server, typically an origin server or similar, sends the cache map to the client device early in a downloading session, and each time a new content resource is to be fetched, such as when a user clicks on a link in a web page, the client device checks if that content resource is present on the cache map. A link of a web page may be associated with numerous individual content resources, sometimes hundreds of them, and when the user clicks on such a link the client device needs to fetch all these content resources. If any of the content resources are present on the cache map, the client device can fetch those content resources from a cache according to the cache map, instead of requesting them from the origin server only to be directed to the cache. For further description of the cache map, reference is made to “Delivering content via Out-Of-Band Cache”:
https://github.com/EricssonResearch/blind-cache-draft/blob/master/draft-eriksson-oob-cache-latest.txt, retrieved on Feb. 8, 2016.
However, if the performance of communication in a downloading session becomes degraded, or if the server of a browsed web site or the like becomes heavily loaded by numerous download requests, it may happen that the user of the client device experiences increased latency in terms of waiting time before a requested content resource is fetched and can be presented, e.g. displayed or otherwise played-out, on the device. It may also happen that the cache is overloaded by many downloading operations and the above-described cache map may direct the client device to the overloaded cache causing further load on the cache.
In another example when the client device uses a wireless connection for the communication, the radio conditions of the connection may deteriorate, e.g. due to bad coverage or high interference caused by other communications, and/or there may be a lack of available radio resources needed for the communication due to high traffic load in the wireless network used, etc.
Any of the above circumstances may thus reduce the performance of the communication resulting in frustrating latency and degradation of the user's downloading experience e.g. when browsing a web page or the like.